home *** CD-ROM | disk | FTP | other *** search
/ Giga Games 1 / Giga Games.iso / net / usenet / volume11 / reve / patch3d < prev    next >
Encoding:
Internet Message Format  |  1991-01-03  |  54.2 KB

  1. Path: uunet!zephyr.ens.tek.com!tekred!saab!billr
  2. From: billr@saab.CNA.TEK.COM (Bill Randle)
  3. Newsgroups: comp.sources.games
  4. Subject: v12i004:  reve - an othello game, Patch3d
  5. Message-ID: <6762@tekred.CNA.TEK.COM>
  6. Date: 21 Dec 90 20:50:57 GMT
  7. Sender: news@tekred.CNA.TEK.COM
  8. Lines: 1296
  9. Approved: billr@saab.CNA.TEK.COM
  10.  
  11. Submitted-by: Rich Burridge <rburridge@sun.COM>
  12. Posting-number: Volume 12, Issue 4
  13. Archive-name: reve/Patch3d
  14. Patch-To: reve: Volume 11, Issue 52-58
  15. Environment: SunView, XView, X11R4, termcap
  16.  
  17.  
  18.  
  19. #! /bin/sh
  20. # This is a shell archive.  Remove anything before this line, then unpack
  21. # it by saving it into a file and typing "sh file".  To overwrite existing
  22. # files, type "sh file -c".  You can also feed this as standard input via
  23. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  24. # will see the following message at the end:
  25. #        "End of archive 4 (of 9)."
  26. # Contents:  patches03a
  27. # Wrapped by billr@saab on Fri Dec 21 11:26:53 1990
  28. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  29. if test -f 'patches03a' -a "${1}" != "-c" ; then 
  30.   echo shar: Will not clobber existing file \"'patches03a'\"
  31. else
  32. echo shar: Extracting \"'patches03a'\" \(52474 characters\)
  33. sed "s/^X//" >'patches03a' <<'END_OF_FILE'
  34. X
  35. X------- patchlevel.h -------
  36. X*** /tmp/da07463    Sun Dec  9 15:07:15 1990
  37. X--- patchlevel.h    Thu Nov 29 06:17:17 1990
  38. X***************
  39. X*** 22,25 ****
  40. X   *  (see README file), then an attempt will be made to fix them.
  41. X   */
  42. X  
  43. X! #define  PATCHLEVEL  2
  44. X--- 22,25 ----
  45. X   *  (see README file), then an attempt will be made to fix them.
  46. X   */
  47. X  
  48. X! #define  PATCHLEVEL  3
  49. X
  50. X------- README -------
  51. X*** /tmp/da07466    Sun Dec  9 15:07:15 1990
  52. X--- README    Thu Dec  6 10:23:57 1990
  53. X***************
  54. X*** 43,48 ****
  55. X--- 43,57 ----
  56. X  levels 4-6 would satisfy amateurs, and the higher levels will give experts a
  57. X  good game. Level 8 (30 minutes) is the tournament level.
  58. X  
  59. X+ The address where people can get information about tournaments, Othello
  60. X+ Quarterly, and "Othello Brief and Basic' is:
  61. X+  
  62. X+         Othello Quarterly
  63. X+         c/o C.Hewlett
  64. X+         920 Northgate Ave.
  65. X+         Waynesboro, VA 22980
  66. X+         USA
  67. X+ 
  68. X  2. Getting started.
  69. X  -------------------
  70. X  
  71. X***************
  72. X*** 78,83 ****
  73. X--- 87,93 ----
  74. X  SELTYPE      - uncomment for old select(2) calls.
  75. X  SIGRET       - uncomment if your signal function expects an integer function.
  76. X  SYSV         - uncomment if you are running Unix System V.
  77. X+ X11R3        - uncomment if you are building the X11 version under X11R3.
  78. X  X11INCDIR    - X11 only: location of the X11 #include files.
  79. X  X11LIBDIR    - X11 only: location of the X11 libraries.
  80. X  XVIEWINCDIR  - XView only: location of the XView #include files.
  81. X***************
  82. X*** 215,223 ****
  83. X  Steve Misrack, Hugues Leroy, Linton Miller, Mike Stump, D. Hugh Redelmeier,
  84. X  Scott W. Danielson, Gary D. Kline, Kjetil Torgrim Homme, Peter Johansson,
  85. X  Alfred Nathaniel, Arnold Gill, Martin Chudley, W Mat Waites, Keith Moore,
  86. X! John Eras, Heather Rose, Jonathan I. Kamens, Krishnamurthy Ganesan and
  87. X! Gordon C. Galligher for bug reports and/or bug fixes plus suggested
  88. X! enhancements.
  89. X  
  90. X  Suggestions for furthur improvement would be most welcome, plus bugs,
  91. X  comments and flames.
  92. X--- 225,234 ----
  93. X  Steve Misrack, Hugues Leroy, Linton Miller, Mike Stump, D. Hugh Redelmeier,
  94. X  Scott W. Danielson, Gary D. Kline, Kjetil Torgrim Homme, Peter Johansson,
  95. X  Alfred Nathaniel, Arnold Gill, Martin Chudley, W Mat Waites, Keith Moore,
  96. X! John Eras, Heather Rose, Jonathan I. Kamens, Krishnamurthy Ganesan, Gordon C.
  97. X! Galligher, Soren Hein, Rod Whitby Daniel Edward Lovinger, Richard K. Lloyd,
  98. X! Jacob E. Goodman and John Eldredge for bug reports and/or bug fixes plus
  99. X! suggested enhancements.
  100. X  
  101. X  Suggestions for furthur improvement would be most welcome, plus bugs,
  102. X  comments and flames.
  103. X
  104. X------- Makefile.dist -------
  105. X*** /tmp/da07469    Sun Dec  9 15:07:16 1990
  106. X--- Makefile.dist    Thu Dec  6 10:21:47 1990
  107. X***************
  108. X*** 75,80 ****
  109. X--- 75,85 ----
  110. X  #
  111. X  #SYSV  = -DSYSV
  112. X  #-----------------------------------------------------------------------
  113. X+ #  If you are compiling the X11 version under MIT X11R3, you will need to
  114. X+ #  uncomment the following definition:
  115. X+ #
  116. X+ #X11R3 = -DX11R3
  117. X+ #-----------------------------------------------------------------------
  118. X  #  If you are compiling the X11 version and the X11 include and
  119. X  #  library files are not in a standard place, then the following
  120. X  #  two lines should be uncommented, and set appropriately.
  121. X***************
  122. X*** 102,108 ****
  123. X  #
  124. X  CDEFS        = $(NOINDEX) $(NOSELECT) $(NO_USLEEP) $(NO_TIMEVAL) \
  125. X            $(EDGENAME) $(SELTYPE) $(SIGRET) $(SYSV) \
  126. X!           $(X11INCDIR) $(XVIEWINCDIR)
  127. X  CFLAGS          = -O $(CDEFS)
  128. X  #
  129. X  #==========================================================================
  130. X--- 107,113 ----
  131. X  #
  132. X  CDEFS        = $(NOINDEX) $(NOSELECT) $(NO_USLEEP) $(NO_TIMEVAL) \
  133. X            $(EDGENAME) $(SELTYPE) $(SIGRET) $(SYSV) \
  134. X!           $(X11R3) $(X11INCDIR) $(XVIEWINCDIR)
  135. X  CFLAGS          = -O $(CDEFS)
  136. X  #
  137. X  #==========================================================================
  138. X***************
  139. X*** 114,125 ****
  140. X  
  141. X  CC              = cc
  142. X  
  143. X! STDSRCS         = boardstuff.c events.c makemove.c main.c \
  144. X!           procs.c rev_eval.c rev_ip.c rev_iycp.c
  145. X! STDOBJS         = boardstuff.o events.o makemove.o main.o \
  146. X!           procs.o rev_eval.o rev_ip.o rev_iycp.o
  147. X  
  148. X  GSRCS           = sunview.c tty.c x11.c xview.c
  149. X  HDRS            = color.h extern.h images.h reve.h patchlevel.h
  150. X  IDIR        = images
  151. X  IMAGES          = $(IDIR)/black.icon \
  152. X--- 119,131 ----
  153. X  
  154. X  CC              = cc
  155. X  
  156. X! REVESRCS        = rev_eval.c rev_ip.c rev_iycp.c
  157. X! STDSRCS         = boardstuff.c events.c makemove.c main.c procs.c
  158. X! REVEOBJS        = rev_eval.o rev_ip.o rev_iycp.o
  159. X! STDOBJS         = boardstuff.o events.o makemove.o main.o procs.o
  160. X  
  161. X  GSRCS           = sunview.c tty.c x11.c xview.c
  162. X+ OSRCS           = common.c items.c reve_proc.c 
  163. X  HDRS            = color.h extern.h images.h reve.h patchlevel.h
  164. X  IDIR        = images
  165. X  IMAGES          = $(IDIR)/black.icon \
  166. X***************
  167. X*** 133,138 ****
  168. X--- 139,146 ----
  169. X            $(IDIR)/Lcycle.icon \
  170. X            $(IDIR)/Rcycle.icon \
  171. X            $(IDIR)/Scycle.icon \
  172. X+           $(IDIR)/Sch_off.icon \
  173. X+           $(IDIR)/Sch_on.icon \
  174. X            $(IDIR)/hglass.cursor \
  175. X            $(IDIR)/nocur.cursor
  176. X  
  177. X***************
  178. X*** 139,145 ****
  179. X  OTHERS          = CHANGES README TODO reve.man MANIFEST FILES \
  180. X            reve.man.text Makefile.dist
  181. X  
  182. X! SFILES1         = events.c items.c makemove.c main.c procs.c
  183. X  SFILES2        = boardstuff.c rev_eval.c rev_ip.c rev_iycp.c $(HDRS)
  184. X  SFILES3         = $(OTHERS)
  185. X  SFILES4         = tty.c x11.c xview.c
  186. X--- 147,153 ----
  187. X  OTHERS          = CHANGES README TODO reve.man MANIFEST FILES \
  188. X            reve.man.text Makefile.dist
  189. X  
  190. X! SFILES1         = $(OSRCS) events.c makemove.c main.c procs.c
  191. X  SFILES2        = boardstuff.c rev_eval.c rev_ip.c rev_iycp.c $(HDRS)
  192. X  SFILES3         = $(OTHERS)
  193. X  SFILES4         = tty.c x11.c xview.c
  194. X***************
  195. X*** 169,194 ****
  196. X  
  197. X  all:            $(BINARIES)
  198. X  
  199. X! sunview:        $(STDOBJS) items.o sunview.o
  200. X!         $(CC) -o sv_reve $(CFLAGS) $(STDOBJS) \
  201. X!                 items.o sunview.o $(SVIEWLIBS)
  202. X          -cp sv_reve reve
  203. X  
  204. X! tty:            $(STDOBJS) items.o tty.o
  205. X!         $(CC) -o tty_reve $(CFLAGS) $(STDOBJS) \
  206. X!                 items.o tty.o $(TTYLIBS)
  207. X          -cp tty_reve reve
  208. X  
  209. X! x11:            $(STDOBJS) items.o x11.o
  210. X!         $(CC) -o xreve $(X11LIBDIR) $(CFLAGS) $(STDOBJS) \
  211. X!                 items.o x11.o \
  212. X!                    $(X11LIBS)
  213. X          -cp xreve reve
  214. X  
  215. X! xview:          $(STDOBJS) xview.o
  216. X          $(CC) -o xv_reve $(XVIEWLIBDIR) $(CFLAGS) $(STDOBJS) \
  217. X                  xview.o $(XVIEWLIBS)
  218. X          -cp xv_reve reve
  219. X  
  220. X  install:
  221. X          -cp reve $(BINDIR)
  222. X--- 177,202 ----
  223. X  
  224. X  all:            $(BINARIES)
  225. X  
  226. X! sunview:        $(STDOBJS) $(REVEOBJS) common.o items.o sunview.o
  227. X!         $(CC) -o sv_reve $(CFLAGS) $(STDOBJS) $(REVEOBJS) \
  228. X!                 common.o items.o sunview.o $(SVIEWLIBS)
  229. X          -cp sv_reve reve
  230. X  
  231. X! tty:            $(STDOBJS) $(REVEOBJS) common.o items.o tty.o
  232. X!         $(CC) -o tty_reve $(CFLAGS) $(STDOBJS) $(REVEOBJS) \
  233. X!                 common.o items.o tty.o $(TTYLIBS)
  234. X          -cp tty_reve reve
  235. X  
  236. X! x11:            $(STDOBJS) $(REVEOBJS) common.o items.o x11.o
  237. X!         $(CC) -o xreve $(X11LIBDIR) $(CFLAGS) $(STDOBJS) $(REVEOBJS) \
  238. X!                 common.o items.o x11.o $(X11LIBS)
  239. X          -cp xreve reve
  240. X  
  241. X! xview:          $(STDOBJS) $(REVEOBJS) common.o reve_proc.o xview.o
  242. X          $(CC) -o xv_reve $(XVIEWLIBDIR) $(CFLAGS) $(STDOBJS) \
  243. X                  xview.o $(XVIEWLIBS)
  244. X          -cp xv_reve reve
  245. X+         $(CC) -o reve_proc $(CFLAGS) common.o reve_proc.o $(REVEOBJS)
  246. X  
  247. X  install:
  248. X          -cp reve $(BINDIR)
  249. X***************
  250. X*** 200,215 ****
  251. X          -cp reve.man $(MANDIR)/reve.$(MANSECT)
  252. X          -chmod 644 $(MANDIR)/reve.$(MANSECT)
  253. X  
  254. X! clean:;         rm -f *.o *.Z *.uu Part* *~ reve $(BINARIES) core
  255. X  
  256. X  lint:        lint-sunview lint-tty lint-xview lint-x11
  257. X! lint-sunview:;    lint $(CDEFS) $(STDSRCS) items.c sunview.c $(SVIEWLIBS)
  258. X! lint-tty:;    lint $(CDEFS) $(STDSRCS) items.c tty.c $(TTYLIBS)
  259. X! lint-xview:;    lint $(CDEFS) $(STDSRCS) xview.c $(XVIEWLIBS) 
  260. X! lint-x11:;    lint $(CDEFS) $(STDSRCS) items.c x11.c $(X11LIBS) 
  261. X  
  262. X  saber:        $(STDSRCS) x11.c
  263. X!         #load $(LDFLAGS) $(CDEFS) $(STDSRCS) items.c x11.c $(X11LIBS)
  264. X  
  265. X  shar:;          shar.script $(SFILES1) > Part1
  266. X          shar.script $(SFILES2) > Part2
  267. X--- 208,228 ----
  268. X          -cp reve.man $(MANDIR)/reve.$(MANSECT)
  269. X          -chmod 644 $(MANDIR)/reve.$(MANSECT)
  270. X  
  271. X! clean:;         rm -f *.o *.Z *.uu Part* *~ reve reve_proc $(BINARIES) core
  272. X  
  273. X  lint:        lint-sunview lint-tty lint-xview lint-x11
  274. X! lint-sunview:;    lint $(CDEFS) $(STDSRCS) $(REVESRCS) \
  275. X!             common.c items.c sunview.c $(SVIEWLIBS)
  276. X! lint-tty:;    lint $(CDEFS) $(STDSRCS) $(REVESRCS) \
  277. X!             common.c items.c tty.c $(TTYLIBS)
  278. X! lint-xview:;    lint $(CDEFS) $(STDSRCS) xview.c $(XVIEWLIBS)
  279. X!         lint $(CDEFS) reve_proc.c common.c $(REVESRCS)
  280. X! lint-x11:;    lint $(CDEFS) $(STDSRCS) $(REVESRCS) \
  281. X!             common.c items.c x11.c $(X11LIBS) 
  282. X  
  283. X  saber:        $(STDSRCS) x11.c
  284. X!         #load $(LDFLAGS) $(CDEFS) $(STDSRCS) $(REVESRCS) \
  285. X!             common.c items.c x11.c $(X11LIBS)
  286. X  
  287. X  shar:;          shar.script $(SFILES1) > Part1
  288. X          shar.script $(SFILES2) > Part2
  289. X***************
  290. X*** 220,227 ****
  291. X          shar.script $(SFILES7) > Part7
  292. X  
  293. X  create:         SCCS
  294. X!         -sccs create $(STDSRCS) items.c $(GSRCS) $(HDRS) \
  295. X!                  $(IMAGES) $(OTHERS)
  296. X  
  297. X  SCCS:
  298. X          mkdir SCCS
  299. X--- 233,240 ----
  300. X          shar.script $(SFILES7) > Part7
  301. X  
  302. X  create:         SCCS
  303. X!         -sccs create $(STDSRCS) $(REVESRCS) items.c reve_proc.c \
  304. X!                  $(GSRCS) $(HDRS) $(IMAGES) $(OTHERS)
  305. X  
  306. X  SCCS:
  307. X          mkdir SCCS
  308. X***************
  309. X*** 228,233 ****
  310. X--- 241,247 ----
  311. X          chmod 755 SCCS
  312. X  
  313. X  boardstuff.o:   boardstuff.c color.h reve.h extern.h
  314. X+ common.o:       common.c reve.h
  315. X  events.o:       events.c reve.h color.h extern.h
  316. X  items.o:        items.c color.h reve.h extern.h
  317. X  makemove.o:     makemove.c reve.h extern.h
  318. X***************
  319. X*** 236,241 ****
  320. X--- 250,256 ----
  321. X  rev_eval.o:     rev_eval.c reve.h
  322. X  rev_ip.o:       rev_ip.c reve.h
  323. X  rev_iycp.o:     rev_iycp.c reve.h
  324. X+ reve_proc.o:    reve_proc.c reve.h
  325. X  sunview.o:      sunview.c reve.h color.h extern.h images.h $(IMAGES)
  326. X  tty.o:          tty.c reve.h color.h extern.h
  327. X  x11.o:          x11.c reve.h color.h extern.h images.h $(IMAGES)
  328. X
  329. X------- Imakefile -------
  330. X*** /tmp/da07472    Sun Dec  9 15:07:17 1990
  331. X--- Imakefile    Thu Nov 29 16:54:47 1990
  332. X***************
  333. X*** 63,75 ****
  334. X            $(SIGRET)
  335. X  DEFINES         = $(CDEFS) -DX11
  336. X  ETABLE        = reve.edgetable
  337. X- LIBDIR        = $(USRLIBDIR)/reve
  338. X       
  339. X  /*
  340. X   *  Full pathname of the reve edge table file. This can also be overridden
  341. X   *  with a command line option.
  342. X   */
  343. X! EDGENAMEFILE    = $(LIBDIR)/$(ETABLE)
  344. X  EDGENAME        = -DEDGENAME=\"$(EDGENAMEFILE)\"
  345. X  
  346. X       
  347. X--- 63,74 ----
  348. X            $(SIGRET)
  349. X  DEFINES         = $(CDEFS) -DX11
  350. X  ETABLE        = reve.edgetable
  351. X       
  352. X  /*
  353. X   *  Full pathname of the reve edge table file. This can also be overridden
  354. X   *  with a command line option.
  355. X   */
  356. X! EDGENAMEFILE    = $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(ETABLE)
  357. X  EDGENAME        = -DEDGENAME=\"$(EDGENAMEFILE)\"
  358. X  
  359. X       
  360. X***************
  361. X*** 79,86 ****
  362. X            procs.o rev_eval.o rev_ip.o rev_iycp.o x11.o
  363. X  
  364. X  ComplexProgramTarget(reve)
  365. X! MakeDirectories(install,$(LIBDIR)$(PATHSEP)reve)
  366. X! InstallNonExec($(ETABLE),$(LIBDIR)$(PATHSEP)reve)
  367. X  
  368. X  install:: install.man
  369. X  
  370. X--- 78,85 ----
  371. X            procs.o rev_eval.o rev_ip.o rev_iycp.o x11.o
  372. X  
  373. X  ComplexProgramTarget(reve)
  374. X! MakeDirectories(install,$(USRLIBDIR)$(PATHSEP)reve)
  375. X! InstallNonExec($(ETABLE),$(USRLIBDIR)$(PATHSEP)reve)
  376. X  
  377. X  install:: install.man
  378. X  
  379. X
  380. X------- FILES -------
  381. X*** /tmp/da07475    Sun Dec  9 15:07:17 1990
  382. X--- FILES    Tue Dec  4 21:30:23 1990
  383. X***************
  384. X*** 7,17 ****
  385. X--- 7,19 ----
  386. X  --------------------------------
  387. X  
  388. X  boardstuff.c                - various board manipulation routines.
  389. X+ common.c                    - common routines between reve and reve_proc.
  390. X  events.c                    - event handling procedures.
  391. X  items.c                     - procedures for manipulating reve panel items.
  392. X  makemove.c                  - interface to the computer strategy routines.
  393. X  main.c                      - includes variable declarations and main().
  394. X  procs.c                     - procedures associated with the panel items.
  395. X+ reve_proc.c                 - separate reve process for the XView version.
  396. X  
  397. X  rev_eval.c                  - reve evaluation function.
  398. X  rev_ip.c                    - return a move and a note for a given color.
  399. X***************
  400. X*** 53,57 ****
  401. X--- 55,61 ----
  402. X  images/Lcycle.icon          - cycle panel item with left side inverted.
  403. X  images/Rcycle.icon          - cycle panel item with right side inverted.
  404. X  images/Scycle.icon          - stencil for normal/inverted cycle panel items.
  405. X+ images/Sch_off.icon         - single choice panel item (off).
  406. X+ images/Sch_on.icon          - single choice panel item (on).
  407. X  images/hglass.cursor        - hour glass cursor for computer move.
  408. X  images/nocur.cursor         - no cursor when piece is being dragged.
  409. X
  410. X------- MANIFEST -------
  411. X*** /tmp/da07478    Sun Dec  9 15:07:18 1990
  412. X--- MANIFEST    Tue Dec  4 21:29:17 1990
  413. X***************
  414. X*** 6,16 ****
  415. X--- 6,18 ----
  416. X  
  417. X  Filename.                              |  Part #
  418. X  --------------------------------------------------
  419. X+ common.c                               |    1
  420. X  events.c                               |    1
  421. X  items.c                                |    1
  422. X  makemove.c                             |    1
  423. X  main.c                                 |    1
  424. X  procs.c                                |    1
  425. X+ reve_proc.c                            |    1
  426. X  boardstuff.c                           |    2
  427. X  rev_eval.c                             |    2
  428. X  rev_ip.c                               |    2
  429. X***************
  430. X*** 44,49 ****
  431. X--- 46,53 ----
  432. X  images/Lcycle.icon                     |    5
  433. X  images/Rcycle.icon                     |    5
  434. X  images/Scycle.icon                     |    5
  435. X+ images/Sch_off.icon                    |    5
  436. X+ images/Sch_on.icon                     |    5
  437. X  images/hglass.cursor                   |    5
  438. X  images/nocur.cursor                    |    5
  439. X  reve.edge1                             |    6
  440. X
  441. X------- CHANGES -------
  442. X*** /tmp/da07481    Sun Dec  9 15:07:18 1990
  443. X--- CHANGES    Sun Dec  9 14:42:32 1990
  444. X***************
  445. X*** 23,28 ****
  446. X--- 23,214 ----
  447. X  Reve change history.
  448. X  ====================
  449. X  
  450. X+ v1.1 - patchlevel 3. 9th December 1990.
  451. X+ 
  452. X+        * Added a description of the -bestmove command line option to the
  453. X+          manual pages.
  454. X+ 
  455. X+        * If you were using the -last option, and the window was iconified,
  456. X+          and there was only the initial four stones on the board, then
  457. X+          opening Reve, would incorrectly show the "last" square.
  458. X+ 
  459. X+        * If you were using the -number option, and the window was iconified,
  460. X+          then when Reve was opened again, the number was not being displayed
  461. X+          on the last stone.
  462. X+ 
  463. X+        * The display of a single digit on a stone (with the -number option)
  464. X+          was not centered correctly.
  465. X+ 
  466. X+        * From Jonathan I. Kamens <jik@pit-manager.MIT.EDU>
  467. X+          Problems with the Imakefile. The line that says
  468. X+          "LIBDIR=$(USRLIBDIR)/reve" should be deleted, and both of the rules
  469. X+          that say "$(LIBDIR)$(PATHSEP)reve" should actually say
  470. X+          "$(USRLIBDIR)$(PATHSEP)reve".
  471. X+ 
  472. X+          Also, the EDGENAMEFILE should be changed to
  473. X+          $(USRLIBDIR)$(PATHSEP)reve$(PATHSEP)$(ETABLE)
  474. X+ 
  475. X+        * Added in X resources support for the X11(Xlib) and XView versions.
  476. X+          Currently, the resources read are:
  477. X+ 
  478. X+            reve.animate:        (boolean) show animation.
  479. X+            reve.bestmove:       (boolean) show computer best move so far.
  480. X+            reve.difficulty:     (integer) computer difficulty level.
  481. X+            reve.last:           (boolean) show last move (with a square).
  482. X+            reve.log:            (boolean) write computer info to log file.
  483. X+            reve.notes:          (boolean) show computer notes.
  484. X+            reve.number:         (boolean) show last move (number on stone).
  485. X+            reve.quick:          (boolean) play quick game (don't flip stones).
  486. X+ 
  487. X+        * From Valerie Haecky <vmh@Eng.Sun.COM>
  488. X+          Undo'ing is incorrect at the end game if the computer is playing
  489. X+          black.
  490. X+ 
  491. X+        *  Need to allow options like -scale through on the command line. This
  492. X+           can be done by have an init_graphics() routine that gets called
  493. X+           right at the start, which strips off graphics specific options.
  494. X+ 
  495. X+        *  The hourglass/watch cursor is turned on, when the computer is
  496. X+           suggesting a move.
  497. X+ 
  498. X+        * If the bestmove option is on, and the computer suggested a move,
  499. X+          the last bestmove square wasn't being removed.
  500. X+ 
  501. X+        * From Valerie Haecky <vmh@Eng.Sun.COM>
  502. X+          The show notes now also shows the current maximum depth for the
  503. X+          computer move.
  504. X+ 
  505. X+        * From Valerie Haecky <vmh@Eng.Sun.COM>
  506. X+          Added to the README file, the address where people can get
  507. X+          information about tournaments, Othello Quarterly, and "Othello
  508. X+          Brief and Basic'
  509. X+ 
  510. X+        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  511. X+          Because the default is now set not to show the last square, and
  512. X+          notes is initially set off, I think that a status message such as
  513. X+          'Black has moved on square <c-5>' should be displayed, otherwise
  514. X+          you've no idea where the computer moved.
  515. X+ 
  516. X+        * Stones are numbered and the last square shown when a game is
  517. X+          being loaded, if these settings are on.
  518. X+ 
  519. X+        * From Valerie Haecky <vmh@Eng.Sun.COM>
  520. X+          More work on the XView version. The control panel layout has been
  521. X+          rearranged, and a property window added. The Help button has been
  522. X+          removed from the control panel. Several options can now be set via
  523. X+          the property sheet. A new difficulty value has been added; the
  524. X+          ability to set a maximum computer search depth rather than the
  525. X+          computer doing a timed move.
  526. X+ 
  527. X+        * A new XView version has been created. This forks off a separate
  528. X+          process to do the computer moves. This is to try to get around
  529. X+          the server hanging problem. This still can happen, but not so
  530. X+          frequently.
  531. X+ 
  532. X+          Two new files have been created:
  533. X+ 
  534. X+          common.c and reve_proc.c.
  535. X+ 
  536. X+          The Makefile.dist, MANIFEST and FILES files have been updated.
  537. X+ 
  538. X+        * From: robert@anucsd.anu.oz.au (Robert Cohen)
  539. X+          It would be nice to have some idea of how far reve was looking ahead.
  540. X+          So in the notes section for example you could report on the ply used
  541. X+          to find the solution. If the bestmove option was set it could be shown
  542. X+          dynamically as new solutions were found.
  543. X+ 
  544. X+        * For the SunView and X11 versions the Done button has been replaced by
  545. X+          a Props button. Clicking on this will toggle the display of a property
  546. X+          window. The property window looks something like:
  547. X+ 
  548. X+          Computer plays:  White | Black | Neither | Both
  549. X+          Difficulty:      1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
  550. X+ 
  551. X+          Options: [ ]    Animate Move
  552. X+                   [ ]    Show Current Best Move
  553. X+                   [ ]    Show Last Move
  554. X+                   [ ]    Show Evaluation Info.
  555. X+                   [ ]    Number Last Move
  556. X+                   [ ]    Don't Show Flip
  557. X+  
  558. X+          This introduce two new type of "panel" item, the toggle item
  559. X+          (P_TOGGLE) and the choice item (P_CHOICE). The cycle item has been
  560. X+          removed.
  561. X+  
  562. X+          Selecting the Both field on the Computer plays: option, will display
  563. X+          the message that this option is currently not implemented.
  564. X+  
  565. X+          The following changes have occured in the main reve window:
  566. X+  
  567. X+          The Black: and White: items are messages. The Difficulty: and
  568. X+          Show Notes: items will disappear, freeing up a row.
  569. X+  
  570. X+          Setting the Computer plays: option, alters the Black: and White:
  571. X+          options.
  572. X+  
  573. X+          The iteminfo structure will have five new fields:
  574. X+  
  575. X+            int lx ;              /* X position of the label. */
  576. X+            int ly ;              /* Y position of the label. */
  577. X+            char label[60] ;      /* Panel item label. */
  578. X+            char *options ;       /* Pointer to list of string choices. */
  579. X+            int nopts ;           /* Number of options in list. */
  580. X+ 
  581. X+          Only certain fields are used with each type of panel "item". All
  582. X+          items are initialised in main.c.
  583. X+ 
  584. X+          Two new files have been added to the images directory:
  585. X+ 
  586. X+          images/Sch_off.icon
  587. X+          images/Sch_on.icon
  588. X+ 
  589. X+          This solves the following problems:
  590. X+ 
  591. X+        * From: robert@anucsd.anu.oz.au (Robert Cohen)
  592. X+          It would be nice to be able to change all the program parameters from
  593. X+          inside the game. For example being able to pull down a menu and turn
  594. X+          the bestmove option on or off.
  595. X+ 
  596. X+        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  597. X+          I, and most of the users here, use a combination of X11R4, twm and
  598. X+          1024 by 768 colour or mono displays. The new Reve window now exceeds
  599. X+          the height of the screen minus the height of the twm title bar of the
  600. X+          window! Hence the bottom of half of row 8 and the a to h labelling
  601. X+          are no longer visible, even if the top of the twm title bar for the
  602. X+          Reve window is at the top of the screen!
  603. X+ 
  604. X+        * From Soren Hein <shein@ferdowsi.berkeley.edu>
  605. X+          Why double switches for White, Black and Notes? Both halves of the
  606. X+          switches do the same thing.
  607. X+ 
  608. X+        * Incorporated a new version of the rev_eval.c evaluation fuction from
  609. X+          Yves. There is also a complete new edge table to go with this. This
  610. X+          should be faster on RISC systems.
  611. X+ 
  612. X+        * XResourceManagerString, which is now used as part of the X resources
  613. X+          support in the X11 and XView versions, appears to be an X11R4
  614. X+          functions. If you are trying to get the X11 version working with
  615. X+          X11R3, then there is a new definition in the Makefile[.dist] file
  616. X+          that you'll have to uncomment. The README file has been updated to
  617. X+          mention this.
  618. X+ 
  619. X+        * From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  620. X+          Using the X11 interface, when I click on Suggest and get a cross
  621. X+          marking the suggested square, then the cross does not disappear when
  622. X+          I click on Undo (the position is different, so the suggested square
  623. X+          is no longer valid). This gets a bit confusing when you do a Suggest,
  624. X+          Undo and Suggest again sequence - you end up with 2 crosses on the
  625. X+          board.
  626. X+ 
  627. X+        *  From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  628. X+           When compiling rev_ip.c on an HP-UX 9000 Series 300 machine (68020 or
  629. X+           68030), the HP-UX 7.0 C compiler crashes out with the following error:
  630. X+ 
  631. X+           C1 internal error in "tuplonges": invalid OREG in recognize_array()
  632. X+ 
  633. X+           This problem has now been found, and the appropriate code is
  634. X+           #ifdef'ed in rev_ip.c.
  635. X+ 
  636. X  v1.1 - patchlevel 2. 28th November 1990.
  637. X  
  638. X         * Adjusted Makefile.dist to correctly install and shar reve.man and
  639. X
  640. X------- TODO -------
  641. X*** /tmp/da07484    Sun Dec  9 15:07:19 1990
  642. X--- TODO    Sun Dec  9 13:22:51 1990
  643. X***************
  644. X*** 27,38 ****
  645. X     System is a Sun 2/170 running SunOS 4.0, using the TTY version on a
  646. X     TVI-925. Reve makes a mess on so called "magic-cookie" terminals.
  647. X  
  648. X- *  From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  649. X-    When compiling rev_ip.c on an HP-UX 9000 Series 300 machine (68020 or
  650. X-    68030), the HP-UX 7.0 C compiler crashes out with the following error:
  651. X-   
  652. X-    C1 internal error in "tuplonges": invalid OREG in recognize_array()
  653. X-   
  654. X  
  655. X  Reve TODO list.
  656. X  ===============
  657. X--- 27,32 ----
  658. X***************
  659. X*** 61,93 ****
  660. X     non-obvious things, like how Difficulty is measured.
  661. X  
  662. X  *  There are several problems outstanding with the XView version:
  663. X!    ~ **IMPORTANT** Need to find some way to disable MS_LEFT whilst the
  664. X!                    computer is having its move. At the moment, if you press
  665. X!                    the left mouse button while the computer is doing something,
  666. X!                    the server will hang.
  667. X!    ~ The game panel doesn't correct repaint itself. You need to select
  668. X       "Refresh" from the frame menu.
  669. X     ~ The hourglass cursor should be drawn in XOR mode.
  670. X-    ~ The board window should not have a window menu.
  671. X     ~ The game board isn't correctly painted with the -m command line option.
  672. X-    ~ When you click to get the panel window to the top, the game board should
  673. X-      also be raised.
  674. X-    ~ The alignment and size of some of the items needs to be adjusted to be
  675. X-      more consistent.
  676. X     ~ The color icon doesn't get displayed properly.
  677. X-    ~ Would be nice to be able to close the game panel and leave the board
  678. X-      window open. Status information could be written to a title line and a
  679. X-      window footer (messages such as the number of stones each player
  680. X-      currently has; whose turn it is to move could be placed in the title
  681. X-      line, and panel messages such as invalid move could be written to the
  682. X-      footer.
  683. X     ~ It should be possible to start a load/save by just typing Return in the
  684. X       Load/Save popup.
  685. X  
  686. X- *  Need to allow options like -scale through on the command line. This can
  687. X-    be done by have an init_graphics() routine that gets called right at
  688. X-    the start, which strips off graphics specific options.
  689. X- 
  690. X  *  Need to add in the ability to show the last move, and show all moves to
  691. X     the tty version.
  692. X  
  693. X--- 55,75 ----
  694. X     non-obvious things, like how Difficulty is measured.
  695. X  
  696. X  *  There are several problems outstanding with the XView version:
  697. X!    ~ **IMPORTANT** It's still possible to hang the server, if the left
  698. X!                    mouse button is clicked at the wrong time.
  699. X!    ~ The various panels doesn't correct repaint themselves. You need to select
  700. X       "Refresh" from the frame menu.
  701. X     ~ The hourglass cursor should be drawn in XOR mode.
  702. X     ~ The game board isn't correctly painted with the -m command line option.
  703. X     ~ The color icon doesn't get displayed properly.
  704. X     ~ It should be possible to start a load/save by just typing Return in the
  705. X       Load/Save popup.
  706. X+    ~ Need to add XV_HELP_DATA attributes to each item, and create a reve.info
  707. X+      file with help information.
  708. X+    ~ The initial position of the reve window is coming up randomly. If it's
  709. X+      position isn't given on the command line, it should start at (0,0).
  710. X+    ~ Should recognise the Props key, and bring up the property sheet.
  711. X  
  712. X  *  Need to add in the ability to show the last move, and show all moves to
  713. X     the tty version.
  714. X  
  715. X***************
  716. X*** 148,159 ****
  717. X     A 'I will win/lose in x moves' announcement if a forced win/loss is
  718. X     detected.
  719. X  
  720. X- *  From Valerie Haecky <vmh@Eng.Sun.COM>
  721. X-    With the XView version, when you change the Black/White setting in the
  722. X-    buttons, the default in the menu should change, too.
  723. X-    Or: if the default in the menu stays the same, if you } hit the new menu
  724. X-    button, and ask for the default, the buttons should update to reflect this.
  725. X- 
  726. X  *  From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  727. X     When you click on Quit and have actually made some moves/changes, then
  728. X     it would be nice to have a dialogue box pop up to say "Save game before
  729. X--- 130,135 ----
  730. X***************
  731. X*** 218,223 ****
  732. X--- 194,205 ----
  733. X     Allow the board to be rotated 90 degrees. The movelist will also have
  734. X     to be adjusted of course.
  735. X  
  736. X+    [Board rotation is only necessary, if we also support a printing
  737. X+     facility fro transcripts. For publishing games usually start
  738. X+     on c4. Also, if we want an opening library composed from
  739. X+     played games, or other learning mechanisms, we would have to
  740. X+     normalize the board. For a playing tool, this is not necessary - vmh.]
  741. X+ 
  742. X  *  Add in the ability for the Reve window[s] to be totally resized. This
  743. X     would involve the black and white stone offscreen images being
  744. X     generated "on-the-fly". Two things to note:
  745. X***************
  746. X*** 233,242 ****
  747. X     move.
  748. X  
  749. X  *  From Soren Hein <shein@ferdowsi.berkeley.edu>
  750. X-    Why double switches for White, Black and Notes? Both halves of the
  751. X-    switches do the same thing.
  752. X- 
  753. X- *  From Soren Hein <shein@ferdowsi.berkeley.edu>
  754. X     Possible to give some strength indication of the levels? Maybe by
  755. X     analogy with chess ratings, if you're familiar enough with Elo-ratings
  756. X     to make guesses/comparisons.
  757. X--- 215,220 ----
  758. X***************
  759. X*** 264,269 ****
  760. X--- 242,289 ----
  761. X  *  From Richard K. Lloyd <RKL@anduin.compsci.liverpool.ac.uk>
  762. X     Add in a move list window, which would contain a scrollable list of all
  763. X     the moves so far (plus evaluation for the computers moves).
  764. X+ 
  765. X+ *  From: robert@anucsd.anu.oz.au (Robert Cohen)
  766. X+    In order to guage which of the machines you have available perform best as
  767. X+    Reve servers, or to choose between different compilers or to choose which
  768. X+    compiler switches to use, it would be useful to have a measure of how fast
  769. X+    Reve runs. You could have a switch that makes reve evaluate a particular
  770. X+    preset position to some set depth and then tells you how many positions a
  771. X+    second it checked. You could call this a rhevestone :-).
  772. X+ 
  773. X+    Also by checking the answer it got against what it was supposed to get,
  774. X+    you would have a simple regression test for checking for compiler bugs
  775. X+    on new architectures.
  776. X+ 
  777. X+ *  From: robert@anucsd.anu.oz.au (Robert Cohen)
  778. X+    It might be useful to have a way of setting the difficulty absolutely ie
  779. X+    in a way not dependant on the machine being used as otherwise level 3 say
  780. X+    is harder on a faster machine than a slower machine. Then you could say to 
  781. X+    someone else as a measure of your Othello playing ability "I can beat reve
  782. X+    on level a3" (a3 stands for absolute level 3).
  783. X+ 
  784. X+ *  From: robert@anucsd.anu.oz.au (Robert Cohen) 
  785. X+    A cute feature I noticed in the standard X11r4 othello is that it thinks
  786. X+    during the humans move time. If the person is a slow player this could make
  787. X+    an appreciable difference if only in giving reve quicker responses.
  788. X+ 
  789. X+ *  From: robert@anucsd.anu.oz.au (Robert Cohen)
  790. X+    It would be nice to add a bit of variety to reve's play. This could be
  791. X+    done in a variety of ways. A simple approach would be to add some minor 
  792. X+    randomness to the evaluation function (optionally of course).
  793. X+    A more sophisticated approach would be to allow the user to tailor the
  794. X+    evaluation function. This could be either done as a fixed set of play styles
  795. X+    eg aggressive, cautious, unpredictable etc or by allowing the user to
  796. X+    change some numerical constants eg the weighting put on mobility by slider.
  797. X+    Of course there would be a "tournament" setting to make reve play as well as
  798. X+    possible.
  799. X+ 
  800. X+ *  Add in a redraw request (^L for example) for the other versions (not just
  801. X+    the tty one).
  802. X+ 
  803. X+ *  Now that reve has a property sheet, and some of the previous panel items
  804. X+    no longer exist, the keyboard interface needed to be changed to include
  805. X+    the new options, and alter some of the existing ones.
  806. X  
  807. X  
  808. X  Items we're unlikely to implement.
  809. X
  810. X------- images.h -------
  811. X*** /tmp/da07487    Sun Dec  9 15:07:20 1990
  812. X--- images.h    Tue Dec  4 21:55:18 1990
  813. X***************
  814. X*** 66,71 ****
  815. X--- 66,79 ----
  816. X  #include "images/nocur.cursor"
  817. X  } ;
  818. X  
  819. X+ unsigned short sch_off_image[] = {
  820. X+ #include "images/Sch_off.icon"
  821. X+ } ;
  822. X+ 
  823. X+ unsigned short sch_on_image[] = {
  824. X+ #include "images/Sch_on.icon"
  825. X+ } ;
  826. X+ 
  827. X  unsigned short white_image[]  = {
  828. X  #include "images/white.icon"
  829. X  } ;
  830. X
  831. X------- extern.h -------
  832. X*** /tmp/da07490    Sun Dec  9 15:07:20 1990
  833. X--- extern.h    Fri Dec  7 14:30:40 1990
  834. X***************
  835. X*** 22,38 ****
  836. X   *  (see README file), then an attempt will be made to fix them.
  837. X   */
  838. X  
  839. X- extern int animation ;     /* If set, show computer glide and piece drag. */
  840. X  extern int best_cmove ;    /* Best computer move so far. */
  841. X  extern int bfont_height ;  /* Height in pixels for bold font. */
  842. X  extern int but_inverted ;  /* Value of panel item inverted. */
  843. X  extern int color ;         /* Current color value. */
  844. X  extern int cur_ch ;        /* Current character pressed. */
  845. X  extern int curx ;          /* Current mouse X position. */
  846. X  extern int cury ;          /* Current mouse Y position. */
  847. X- extern int do_bestmove ;   /* If set, continuously update best move. */
  848. X- extern int do_last ;       /* If set, don't show last move. */
  849. X- extern int do_number ;     /* If set, the last stone placed is numbered. */
  850. X  extern int down ;          /* Indicates is a mouse button is down. */
  851. X  extern int first_move ;    /* Set if computer plays first move. */
  852. X  extern int iconic ;        /* Start as an icon if set. */
  853. X--- 22,35 ----
  854. X   *  (see README file), then an attempt will be made to fix them.
  855. X   */
  856. X  
  857. X  extern int best_cmove ;    /* Best computer move so far. */
  858. X  extern int bfont_height ;  /* Height in pixels for bold font. */
  859. X  extern int but_inverted ;  /* Value of panel item inverted. */
  860. X+ extern int cmove_depth ;   /* Depth of the current best computer move. */
  861. X  extern int color ;         /* Current color value. */
  862. X  extern int cur_ch ;        /* Current character pressed. */
  863. X  extern int curx ;          /* Current mouse X position. */
  864. X  extern int cury ;          /* Current mouse Y position. */
  865. X  extern int down ;          /* Indicates is a mouse button is down. */
  866. X  extern int first_move ;    /* Set if computer plays first move. */
  867. X  extern int iconic ;        /* Start as an icon if set. */
  868. X***************
  869. X*** 47,52 ****
  870. X--- 44,50 ----
  871. X  extern int level ;         /* Current difficulty level for computer moves. */
  872. X  extern int loadgame ;      /* Set if there is a game file to load. */
  873. X  extern int lsval ;         /* Set to 'l' or 's', if loading or saving. */
  874. X+ extern int max_depth ;     /* Computer strategy - maximum depth. */
  875. X  extern int monochrome ;    /* If set, display will be in monochrome. */
  876. X  extern int move ;          /* Current move being evaluated. */
  877. X  extern int move_delta ;    /* Delta for piece animation. */
  878. X***************
  879. X*** 57,63 ****
  880. X  extern int piece_y ;       /* Current Y position of moving piece */
  881. X  extern int play_computer ; /* Set if playing against the computer. */
  882. X  extern int posspec ;       /* Set if -Wp or -g option is present (for X11) */
  883. X! extern int quickgame ;     /* If set, don't flash turning stones. */
  884. X  extern int s_flip ;
  885. X  extern int s_move ;
  886. X  extern int s_opponent ;
  887. X--- 55,63 ----
  888. X  extern int piece_y ;       /* Current Y position of moving piece */
  889. X  extern int play_computer ; /* Set if playing against the computer. */
  890. X  extern int posspec ;       /* Set if -Wp or -g option is present (for X11) */
  891. X! extern int processing ;    /* If set, computer is procesing a move. */
  892. X! extern int profmax ;       /* Current maximum depth. */
  893. X! extern int props_showing ; /* If set, the property window is visible. */
  894. X  extern int s_flip ;
  895. X  extern int s_move ;
  896. X  extern int s_opponent ;
  897. X***************
  898. X*** 65,71 ****
  899. X  extern int s_row ;
  900. X  extern int s_col ;
  901. X  extern int show_moves ;    /* If set, all possible moves are being shown. */
  902. X- extern int show_notes ;    /* If set, display notes value from play_reve. */
  903. X  extern int suggestion ;    /* Positive if a suggested move. */
  904. X  extern int suggest_x ;     /* X position of suggested move. */
  905. X  extern int suggest_y ;     /* Y position of suggested move. */
  906. X--- 65,70 ----
  907. X***************
  908. X*** 77,92 ****
  909. X  extern int wy ;            /* Initial Y position of the window. */ 
  910. X  
  911. X  extern time_t timeleft ;   /* Amount of time left for computer moves. */
  912. X  extern long note ;         /* Note value for current computer move. */
  913. X  
  914. X  extern char *diff_values[] ;     /* Values for cyclic difficulty button. */
  915. X  extern char *comp_values[] ;     /* Values for computer plays button. */
  916. X  extern char gamefile[] ;         /* Name of file for load/save. */
  917. X  extern char geometry[MAXDPY][MAXLINE] ;   /* X11 geometry information. */
  918. X  extern char line[] ;
  919. X! extern char *notes_values[] ;    /* Values for cyclic notes item. */
  920. X  extern char *player_values[] ;   /* Values for cyclic black/white item. */
  921. X  extern char progname[] ;         /* The name of this program. */
  922. X  extern char revtable[] ;         /* Table for reversing bits in a byte. */
  923. X  
  924. X  extern char *black_dpy ;         /* Black piece display information. */
  925. X--- 76,94 ----
  926. X  extern int wy ;            /* Initial Y position of the window. */ 
  927. X  
  928. X  extern time_t timeleft ;   /* Amount of time left for computer moves. */
  929. X+ extern long edges[] ;      /* Edges Stability Table */
  930. X  extern long note ;         /* Note value for current computer move. */
  931. X  
  932. X  extern char *diff_values[] ;     /* Values for cyclic difficulty button. */
  933. X  extern char *comp_values[] ;     /* Values for computer plays button. */
  934. X+ extern char edgefile[] ;         /* Location of the reve edge table file. */
  935. X  extern char gamefile[] ;         /* Name of file for load/save. */
  936. X  extern char geometry[MAXDPY][MAXLINE] ;   /* X11 geometry information. */
  937. X  extern char line[] ;
  938. X! extern char *notes_values[] ;    /* Values for cyclic notes button. */
  939. X  extern char *player_values[] ;   /* Values for cyclic black/white item. */
  940. X  extern char progname[] ;         /* The name of this program. */
  941. X+ extern char *resources[] ;       /* Reve X resources read. */
  942. X  extern char revtable[] ;         /* Table for reversing bits in a byte. */
  943. X  
  944. X  extern char *black_dpy ;         /* Black piece display information. */
  945. X***************
  946. X*** 106,109 ****
  947. X  extern enum cantype cmode, last_cmode ;
  948. X  extern enum disp_type dtype ;
  949. X  extern enum dpy_type cur_dpyno ;
  950. X! extern enum set_type direction ;  /* Incremental direction for cycle item. */
  951. X--- 108,112 ----
  952. X  extern enum cantype cmode, last_cmode ;
  953. X  extern enum disp_type dtype ;
  954. X  extern enum dpy_type cur_dpyno ;
  955. X! extern enum set_type direction ;   /* Incremental direction for cycle item. */
  956. X! extern enum win_type curwin ;      /* Window the current event for in. */
  957. X
  958. X------- reve.h -------
  959. X*** /tmp/da07493    Sun Dec  9 15:07:21 1990
  960. X--- reve.h    Sun Dec  9 13:53:16 1990
  961. X***************
  962. X*** 25,38 ****
  963. X--- 25,51 ----
  964. X  #include <stdio.h>
  965. X  #include <sys/types.h>
  966. X  
  967. X+ #ifdef SYSV
  968. X+ #include <string.h>
  969. X+ #include <sys/times.h>
  970. X+ #else
  971. X+ #include <strings.h>
  972. X+ #include <sys/time.h>
  973. X+ #endif /*SYSV*/
  974. X+ 
  975. X  #define  ALARM         (void) alarm       /* To make lint happy. */
  976. X+ #define  CLOSE         (void) close
  977. X+ #define  DUP2          (void) dup2
  978. X  #define  FCLOSE        (void) fclose
  979. X  #define  FFLUSH        (void) fflush
  980. X  #define  FGETS         (void) fgets
  981. X  #define  FSEEK         (void) fseek
  982. X  #define  FPRINTF       (void) fprintf
  983. X+ #define  GETHOSTNAME   (void) gethostname
  984. X  #define  GETTIMEOFDAY  (void) gettimeofday
  985. X  #define  IOCTL         (void) ioctl
  986. X+ #define  KILL          (void) kill
  987. X+ #define  PIPE          (void) pipe
  988. X  #define  PUTC          (void) putc
  989. X  #define  READ          (void) read
  990. X  #define  SSCANF        (void) sscanf
  991. X***************
  992. X*** 51,58 ****
  993. X--- 64,73 ----
  994. X  #define  BHEIGHT       32       /* Height of a reve button item. */
  995. X  #define  BWIDTH        64       /* Width of a reve button item. */
  996. X  #define  CHEIGHT       20       /* Height of a reve cycle item. */
  997. X+ #define  CHOICEGAP     5        /* Gap between choices in a choice item. */
  998. X  #define  CWIDTH        32       /* Width of a reve cycle item. */
  999. X  #define  NOBUTS        6        /* Number of reve buttons. */
  1000. X+ #define  NOPROWS       9        /* Number of rows of items on property win. */
  1001. X  #define  PIECE_MARGIN  8
  1002. X  #define  PIECE_RAD     (CELL_SIZE / 2 - PIECE_MARGIN)
  1003. X  
  1004. X***************
  1005. X*** 65,71 ****
  1006. X  #else
  1007. X  #define  CELL_SIZE     (int) ((TOTAL_WIDTH-(2*BBORDER)) / BOARD_SIZE)
  1008. X  #define  CY            ((NOROWS*BHEIGHT) + ((NOROWS-1)*BGAP) + (2*BBORDER))
  1009. X! #define  NOROWS        7        /* Number of rows of reve items. */
  1010. X  #define  TOTAL_HEIGHT  CY + (8 * CELL_SIZE) + (2 * BBORDER)
  1011. X  #define  TOTAL_WIDTH   ((NOBUTS*BWIDTH) + ((NOBUTS-1)*BGAP) + (2*BBORDER))
  1012. X  #endif /*XVIEW*/
  1013. X--- 80,86 ----
  1014. X  #else
  1015. X  #define  CELL_SIZE     (int) ((TOTAL_WIDTH-(2*BBORDER)) / BOARD_SIZE)
  1016. X  #define  CY            ((NOROWS*BHEIGHT) + ((NOROWS-1)*BGAP) + (2*BBORDER))
  1017. X! #define  NOROWS        6        /* Number of rows of reve items. */
  1018. X  #define  TOTAL_HEIGHT  CY + (8 * CELL_SIZE) + (2 * BBORDER)
  1019. X  #define  TOTAL_WIDTH   ((NOBUTS*BWIDTH) + ((NOBUTS-1)*BGAP) + (2*BBORDER))
  1020. X  #endif /*XVIEW*/
  1021. X***************
  1022. X*** 103,116 ****
  1023. X  #define  MAXDIFF       9       /* Number of levels of difficulty. */
  1024. X  #define  MAXDPY        2       /* Maximum possible number of displays. */
  1025. X  #define  MAXFONTS      2       /* Maximum number of font types. */
  1026. X! #define  MAXIMAGES     9       /* Maximum number of image types. */
  1027. X! #define  MAXITEMS      17      /* Number of buttons, cyclics and messages. */
  1028. X  
  1029. X  #ifndef  MAXLINE
  1030. X  #define  MAXLINE       80      /* Length of character strings. */
  1031. X  #endif /*!MAXLINE*/
  1032. X  
  1033. X! #define  MAXMENUS      4       /* Maximum number of popup menus. */
  1034. X  #define  NIVEAUMAX     25      /* Maximum possible depth. */
  1035. X  
  1036. X  #ifndef X11
  1037. X--- 118,131 ----
  1038. X  #define  MAXDIFF       9       /* Number of levels of difficulty. */
  1039. X  #define  MAXDPY        2       /* Maximum possible number of displays. */
  1040. X  #define  MAXFONTS      2       /* Maximum number of font types. */
  1041. X! #define  MAXIMAGES     11      /* Maximum number of image types. */
  1042. X! #define  MAXITEMS      24      /* Number of different panel items. */
  1043. X  
  1044. X  #ifndef  MAXLINE
  1045. X  #define  MAXLINE       80      /* Length of character strings. */
  1046. X  #endif /*!MAXLINE*/
  1047. X  
  1048. X! #define  MAX_PROFMAX   60      /* Maximum search depth. */
  1049. X  #define  NIVEAUMAX     25      /* Maximum possible depth. */
  1050. X  
  1051. X  #ifndef X11
  1052. X***************
  1053. X*** 131,138 ****
  1054. X--- 146,158 ----
  1055. X  #define  PAUSE         usleep(500000)    /* 0.5 second. */
  1056. X  #endif /*SYSV*/
  1057. X  
  1058. X+ #define  PROPS_HEIGHT  ((NOPROWS*BHEIGHT) + ((NOPROWS-1)*BGAP) + (2*BBORDER))
  1059. X+ #define  PROPS_WIDTH   ((NOBUTS*BWIDTH)   + ((NOBUTS-1)*BGAP)  + (2*BBORDER))
  1060. X  #define  PSIZE         40      /* Diameter of playing piece. */
  1061. X  
  1062. X+ #define  TICKHEIGHT    16      /* Height of the tick toggle box. */
  1063. X+ #define  TICKWIDTH     16      /* Width of the tick toggle box. */
  1064. X+ 
  1065. X  #ifndef  EDGENAME
  1066. X  #define  EDGENAME      "reve.edgetable"
  1067. X  #endif /*!EDGENAME*/
  1068. X***************
  1069. X*** 145,150 ****
  1070. X--- 165,183 ----
  1071. X  
  1072. X  #define  VINVUL        50
  1073. X  
  1074. X+ #define  CP_WHITE           0          /* Computer plays: choices. */
  1075. X+ #define  CP_BLACK           1
  1076. X+ #define  CP_NEITHER         2
  1077. X+ #define  CP_BOTH            3
  1078. X+ 
  1079. X+ /* Aliases for the property sheet item values. */
  1080. X+ #define  ANIMATION        items[(int) OPT_ANIM].value
  1081. X+ #define  DO_BESTMOVE      items[(int) OPT_BEST].value
  1082. X+ #define  DO_LAST          items[(int) OPT_LAST].value
  1083. X+ #define  SHOW_NOTES       items[(int) OPT_EVAL].value
  1084. X+ #define  DO_NUMBER        items[(int) OPT_NUM].value
  1085. X+ #define  QUICKGAME        items[(int) OPT_FLIP].value
  1086. X+ 
  1087. X  /* Various pseudo events used by the Reve program. */
  1088. X  #define  FRAME_REPAINT    100    /* Reve window needs repainting. */
  1089. X  #define  ENTER_WINDOW     101    /* Mouse has entered the reve window. */
  1090. X***************
  1091. X*** 157,163 ****
  1092. X  #define  RIGHT_UP         108    /* Right mouse button was debounced. */
  1093. X  #define  KEYBOARD         109    /* Keyboard character has been pressed. */
  1094. X  #define  MOUSE_MOVING     110    /* Mouse is moving. */
  1095. X! #define  IGNORE_EVENT     111    /* No interest in this event. */
  1096. X  
  1097. X  /* Batch, last move, locking or show all direction (ON or OFF). */
  1098. X  enum bltype   { IS_OFF, IS_ON } ;
  1099. X--- 190,197 ----
  1100. X  #define  RIGHT_UP         108    /* Right mouse button was debounced. */
  1101. X  #define  KEYBOARD         109    /* Keyboard character has been pressed. */
  1102. X  #define  MOUSE_MOVING     110    /* Mouse is moving. */
  1103. X! #define  PROPS_REPAINT    111    /* Property window needs repainting. */
  1104. X! #define  IGNORE_EVENT     112    /* No interest in this event. */
  1105. X  
  1106. X  /* Batch, last move, locking or show all direction (ON or OFF). */
  1107. X  enum bltype   { IS_OFF, IS_ON } ;
  1108. X***************
  1109. X*** 180,196 ****
  1110. X  /* Different types of graphic images. */
  1111. X  enum image_type { BUT_NORMAL, BUT_INVERT, BUT_STENCIL,
  1112. X                    CY_NORMAL, CY_LINVERT, CY_RINVERT, CY_STENCIL,
  1113. X!                   P_WHITE, P_BLACK } ;
  1114. X  
  1115. X  /* Different types of panel items. */
  1116. X! enum item_type { P_BUTTON, P_CYCLE, P_MESSAGE } ;
  1117. X  
  1118. X  /* Different panel items. */
  1119. X! enum panel_type { LOAD_BUT, NEW_GAME_BUT, SAVE_BUT, SHOW_ALL_BUT,
  1120. X!                   SUGGEST_BUT, UNDO_BUT, DONE_BUT, CANCEL_BUT, QUIT_BUT,
  1121. X!                   BLACK_PLAYS, WHITE_PLAYS, DIFFICULTY, NOTES,
  1122. X!                   PANEL_MES, EVAL_MES, SCORE_MES, TURN_MES } ;
  1123. X  
  1124. X  enum set_type { INCREMENT, DECREMENT, NONE } ;   /* Cycle directions. */
  1125. X  
  1126. X  enum optype   { RCLR, RINV, RSRC } ;       /* Rasterop codes. */
  1127. X--- 214,238 ----
  1128. X  /* Different types of graphic images. */
  1129. X  enum image_type { BUT_NORMAL, BUT_INVERT, BUT_STENCIL,
  1130. X                    CY_NORMAL, CY_LINVERT, CY_RINVERT, CY_STENCIL,
  1131. X!                   TOGGLE_ON, TOGGLE_OFF, P_WHITE, P_BLACK } ;
  1132. X  
  1133. X  /* Different types of panel items. */
  1134. X! enum item_type { P_BUTTON, P_CHOICE, P_CYCLE, P_MESSAGE, P_TOGGLE } ;
  1135. X  
  1136. X+ /* XView reve_proc move operations. */
  1137. X+ enum move_type { M_BEST, M_MOVE, M_PROFMAX, M_SUGGESTION, M_TIME } ;
  1138. X+ 
  1139. X  /* Different panel items. */
  1140. X! enum panel_type { LOAD_BUT,    MOVES_BUT,    NEW_GAME_BUT, SAVE_BUT,
  1141. X!                   SUGGEST_BUT, UNDO_BUT,     PROPS_BUT,    CANCEL_BUT,
  1142. X!                   QUIT_BUT,    BLACK_PLAYS,  WHITE_PLAYS,  PANEL_MES,
  1143. X!                   EVAL_MES,    SCORE_MES,    TURN_MES,     COMP_CHOICE,
  1144. X!                   DIFF_CHOICE, MAX_DEPTH,    OPT_ANIM,     OPT_BEST,
  1145. X!                   OPT_LAST,    OPT_EVAL,     OPT_NUM,      OPT_FLIP } ;
  1146. X  
  1147. X+ enum res_type { R_ANIMATE, R_BESTMOVE, R_DIFFICULTY, R_LAST,  /* Resources. */
  1148. X+                 R_LOG,     R_NOTES,    R_NUMBER,     R_QUICK } ;
  1149. X+ 
  1150. X  enum set_type { INCREMENT, DECREMENT, NONE } ;   /* Cycle directions. */
  1151. X  
  1152. X  enum optype   { RCLR, RINV, RSRC } ;       /* Rasterop codes. */
  1153. X***************
  1154. X*** 197,202 ****
  1155. X--- 239,246 ----
  1156. X  
  1157. X  enum playtype { PLAY_BLACK, PLAY_WHITE } ; /* What the computer is playing. */
  1158. X  
  1159. X+ enum win_type { W_MAIN, W_PROPS } ;        /* Window types. */
  1160. X+ 
  1161. X  extern char *getenv() ;
  1162. X  extern void exit() ;
  1163. X  
  1164. X***************
  1165. X*** 211,217 ****
  1166. X--- 255,265 ----
  1167. X  
  1168. X  struct iteminfo               /* Item information record. */
  1169. X    {
  1170. X+     enum win_type wtype ;     /* Which window the item goes in. */
  1171. X      enum item_type type ;     /* Item type. */
  1172. X+     int lx ;                  /* X position of the label for this item. */
  1173. X+     int ly ;                  /* Y position of the label for this item. */
  1174. X+     char label[30] ;          /* Label for this item (possibly NULL). */
  1175. X      int x ;                   /* X position of this panel item. */
  1176. X      int y ;                   /* Y position of this panel item. */
  1177. X      int width ;               /* Width of this panel item. */
  1178. X***************
  1179. X*** 218,255 ****
  1180. X      int height ;              /* Height of this panel item. */
  1181. X      char text[60] ;           /* Text string associated with this item. */
  1182. X      int value ;               /* Current value of item. */
  1183. X      void (*func)() ;          /* Function to obey for this panel item. */
  1184. X    } ;
  1185. X  
  1186. X! char *index() ;
  1187. X  
  1188. X! void animate_move(),       batch() ;
  1189. X! void check_button_down(),  check_cycle_down(),   check_item_down() ;
  1190. X! void check_item_up(),      close_frame(),        color_area() ;
  1191. X! void computer_move(),      computer_plays() ;
  1192. X! void create_menu(),        destroy_frame(),      difficulty() ;
  1193. X! void do_action(),          do_cycle_key(),       do_key_move() ;
  1194. X! void do_move(),            do_selection(),       domove() ;
  1195. X! void done(),               draw_button(),        draw_cycle() ;
  1196. X! void draw_cycle_item(),    draw_image(),         draw_line() ;
  1197. X! void draw_outline(),       draw_piece(),         draw_rect() ;
  1198. X! void draw_square(),        draw_stencil(),       draw_text() ;
  1199. X! void draw_textfield(),     generate_graphics(),  get_filename() ;
  1200. X  void get_options(),        get_xy(),             getparam() ;
  1201. X  void handle_board_event(), handle_event(),       handle_item() ;
  1202. X  void handle_key(),         init_canvas(),        init_edge_table() ;
  1203. X! void init_fonts(),         init_notes(),         init_player() ;
  1204. X! void initboard(),          initialise() ;
  1205. X! void load_colors(),        load_game(),          lock_screen() ;
  1206. X  void make_canvas(),        make_frame(),         make_icon() ;
  1207. X  void make_message(),       make_move(),          make_panel() ;
  1208. X  void message(),            nap_upto(),           new_game() ;
  1209. X! void position_popup(),     process_event(),      quit() ;
  1210. X! void remove_textfield(),   save_game(),          set_cursor() ;
  1211. X  void set_cycle(),          set_display_types(),  set_eval() ;
  1212. X! void set_score(),          set_timer(),          set_turn() ;
  1213. X! void show_all(),           show_all_moves(),     show_best() ;
  1214. X! void show_last(),          show_number() ;
  1215. X  void show_suggestion(),    start_tool() ;
  1216. X  void suggest(),            think(),              undo() ;
  1217. X  void update_board_image(), usage(),              who_wins() ;
  1218. X--- 266,329 ----
  1219. X      int height ;              /* Height of this panel item. */
  1220. X      char text[60] ;           /* Text string associated with this item. */
  1221. X      int value ;               /* Current value of item. */
  1222. X+     char **options ;          /* Pointer to list of choice strings. */
  1223. X+     int nopts ;               /* Number of options in list. */
  1224. X      void (*func)() ;          /* Function to obey for this panel item. */
  1225. X    } ;
  1226. X  
  1227. X! struct reve_in       /* Input supplied on standard input to reve_proc. */
  1228. X!   {
  1229. X!     enum move_type type ;
  1230. X!     int board[64] ;
  1231. X!     int player ;
  1232. X!     int level ;
  1233. X!     time_t timeleft ;
  1234. X!   } ;
  1235. X  
  1236. X! struct reve_out      /* Results written to standard output by reve_proc. */
  1237. X!   {
  1238. X!     enum move_type type ;
  1239. X!     int move ;
  1240. X!     int note ;
  1241. X!     int depth ;
  1242. X!   } ;
  1243. X! 
  1244. X! char *getenv(), *index() ;
  1245. X! char *get_resource() ;
  1246. X! 
  1247. X! void animate_move(),       batch(),              check_button_down() ;
  1248. X! void check_choice_down(),  check_cycle_down(),   check_item_down() ;
  1249. X! void check_item_up(),      check_toggle_down(),  close_frame() ;
  1250. X! void color_area() ;
  1251. X! void computer_move(),      computer_plays(),     connect_to_reve() ;
  1252. X! void create_menu(),        destroy_frame() ;
  1253. X! void do_action(),          do_computer_move(),   do_cycle_key() ;
  1254. X! void do_key_move(),        do_move(),            do_props() ;
  1255. X! void do_selection(),       do_suggest(),         domove() ;
  1256. X! void done(),               draw_button(),        draw_choice() ;
  1257. X! void draw_cycle(),         draw_cycle_item(),    draw_image() ;
  1258. X! void draw_line(),          draw_outline(),       draw_piece() ;
  1259. X! void draw_rect(),          draw_square(),        draw_stencil() ;
  1260. X! void draw_text(),          draw_textfield(),     draw_toggle() ;
  1261. X! void generate_graphics(),  get_filename() ;
  1262. X  void get_options(),        get_xy(),             getparam() ;
  1263. X  void handle_board_event(), handle_event(),       handle_item() ;
  1264. X  void handle_key(),         init_canvas(),        init_edge_table() ;
  1265. X! void init_fonts(),         initboard(),          initialise() ;
  1266. X! void load_colors(),        load_game() ;
  1267. X! void load_resources(),     lock_screen() ;
  1268. X  void make_canvas(),        make_frame(),         make_icon() ;
  1269. X  void make_message(),       make_move(),          make_panel() ;
  1270. X  void message(),            nap_upto(),           new_game() ;
  1271. X! void open_frame(),         paint_prop_sheet(),   position_popup() ;
  1272. X! void process_event(),      quit() ;
  1273. X! void read_resources(),     remove_textfield(),   reset_time() ;
  1274. X! void save_game(),          set_computer(),       set_cursor() ;
  1275. X  void set_cycle(),          set_display_types(),  set_eval() ;
  1276. X! void set_option(),         set_score(),          set_timer() ;
  1277. X! void set_turn(),           show_all(),           show_all_moves() ;
  1278. X! void show_best(),          show_last(),          show_number() ;
  1279. X  void show_suggestion(),    start_tool() ;
  1280. X  void suggest(),            think(),              undo() ;
  1281. X  void update_board_image(), usage(),              who_wins() ;
  1282. X+ void write_to_reve() ;
  1283. X
  1284. END_OF_FILE
  1285. if test 52474 -ne `wc -c <'patches03a'`; then
  1286.     echo shar: \"'patches03a'\" unpacked with wrong size!
  1287. fi
  1288. # end of 'patches03a'
  1289. fi
  1290. echo shar: End of archive 4 \(of 9\).
  1291. cp /dev/null ark4isdone
  1292. MISSING=""
  1293. for I in 1 2 3 4 5 6 7 8 9 ; do
  1294.     if test ! -f ark${I}isdone ; then
  1295.     MISSING="${MISSING} ${I}"
  1296.     fi
  1297. done
  1298. if test "${MISSING}" = "" ; then
  1299.     echo You have unpacked all 9 archives.
  1300.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1301. else
  1302.     echo You still need to unpack the following archives:
  1303.     echo "        " ${MISSING}
  1304. fi
  1305. ##  End of shell archive.
  1306. exit 0
  1307.